package com.ssy.lingxi.after.sale.service;

import com.ssy.lingxi.after.sale.model.dto.OperateLogInnerResponDto;
import com.ssy.lingxi.after.sale.model.dto.OperateLogInputDto;
import com.ssy.lingxi.after.sale.model.vo.request.WorkflowPageVO;
import com.ssy.lingxi.after.sale.model.vo.response.RepairInnerWorkflowRecordVO;
import com.ssy.lingxi.after.sale.model.vo.response.ReplaceInnerWorkflowRecordVO;
import com.ssy.lingxi.after.sale.model.vo.response.ReturnInnerWorkflowRecordVO;
import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;

import java.util.List;

/**
 * 内部工作流记录接口服务
 * @author 伍将
 * @date 2020/9/3
 * @version 2.0.0
 */
public interface IInnerWorkflowRecordService {

    /**
     * 查询维修内部流转记录
     * @author 伍将
     * @date 2020/12/11
     * @param dataId:
     * @return:
     **/
    Wrapper<List<RepairInnerWorkflowRecordVO>> getRepairRecordList(Long memberId, Long roleId, Long dataId);

    /**
     * 查询换货内部流转记录
     * @author 伍将
     * @date 2020/12/11
     * @param dataId:
     * @return:
     **/
    Wrapper<List<ReplaceInnerWorkflowRecordVO>> getReplaceRecordList(Long memberId, Long roleId, Long dataId);

    /**
     * 查询退货内部流转记录
     * @author 伍将
     * @date 2020/12/11
     * @param dataId:
     * @return:
     **/
    Wrapper<List<ReturnInnerWorkflowRecordVO>> getReturnRecordList(Long memberId, Long roleId, Long dataId);

    /**
     * 分页查询维修内部工作流
     * @author 伍将
     * @date 2020/12/11
     * @param user:
     * @param pageVO:
     * @return:
     **/
    Wrapper<PageData<RepairInnerWorkflowRecordVO>> pageRepairRecord(UserLoginCacheDTO user, WorkflowPageVO pageVO);

    /**
     * 分页查询换货内部工作流
     * @author 伍将
     * @date 2020/12/11
     * @param user:
     * @param pageVO:
     * @return:
     **/
    Wrapper<PageData<ReplaceInnerWorkflowRecordVO>> pageReplaceRecord(UserLoginCacheDTO user, WorkflowPageVO pageVO);

    /**
     * 分页查询退货内部工作流
     * @author 伍将
     * @date 2020/12/11
     * @param user:
     * @param pageVO:
     * @return:
     **/
    Wrapper<PageData<ReturnInnerWorkflowRecordVO>> pageReturnRecord(UserLoginCacheDTO user, WorkflowPageVO pageVO);

    /**
     * 分页查询-退货内部日志
     * @param loginUser
     * @param pageVO
     * @return
     */
    PageData<OperateLogInnerResponDto> pageReturnInnerRecordCommon(UserLoginCacheDTO loginUser, OperateLogInputDto pageVO);

    /**
     * 分页查询-换货内部日志
     * @param loginUser
     * @param pageVO
     * @return
     */
    PageData<OperateLogInnerResponDto> pageReplaceInnerRecordCommon(UserLoginCacheDTO loginUser, OperateLogInputDto pageVO);

    /**
     * 分页查询-维修内部日志
     * @param loginUser
     * @param pageVO
     * @return
     */
    PageData<OperateLogInnerResponDto> pageRepairInnerRecordCommon(UserLoginCacheDTO loginUser, OperateLogInputDto pageVO);
}
